home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_robotparser.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  3KB  |  112 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. import unittest
  5. import StringIO
  6. import robotparser
  7. from test import test_support
  8.  
  9. class RobotTestCase(unittest.TestCase):
  10.     
  11.     def __init__(self, index, parser, url, good, agent):
  12.         unittest.TestCase.__init__(self)
  13.         if good:
  14.             self.str = 'RobotTest(%d, good, %s)' % (index, url)
  15.         else:
  16.             self.str = 'RobotTest(%d, bad, %s)' % (index, url)
  17.         self.parser = parser
  18.         self.url = url
  19.         self.good = good
  20.         self.agent = agent
  21.  
  22.     
  23.     def runTest(self):
  24.         if isinstance(self.url, tuple):
  25.             (agent, url) = self.url
  26.         else:
  27.             url = self.url
  28.             agent = self.agent
  29.         if self.good:
  30.             self.failUnless(self.parser.can_fetch(agent, url))
  31.         else:
  32.             self.failIf(self.parser.can_fetch(agent, url))
  33.  
  34.     
  35.     def __str__(self):
  36.         return self.str
  37.  
  38.  
  39. tests = unittest.TestSuite()
  40.  
  41. def RobotTest(index, robots_txt, good_urls, bad_urls, agent = 'test_robotparser'):
  42.     lines = StringIO.StringIO(robots_txt).readlines()
  43.     parser = robotparser.RobotFileParser()
  44.     parser.parse(lines)
  45.     for url in good_urls:
  46.         tests.addTest(RobotTestCase(index, parser, url, 1, agent))
  47.     
  48.     for url in bad_urls:
  49.         tests.addTest(RobotTestCase(index, parser, url, 0, agent))
  50.     
  51.  
  52. doc = '\nUser-agent: *\nDisallow: /cyberworld/map/ # This is an infinite virtual URL space\nDisallow: /tmp/ # these will soon disappear\nDisallow: /foo.html\n'
  53. good = [
  54.     '/',
  55.     '/test.html']
  56. bad = [
  57.     '/cyberworld/map/index.html',
  58.     '/tmp/xxx',
  59.     '/foo.html']
  60. RobotTest(1, doc, good, bad)
  61. doc = '\n# robots.txt for http://www.example.com/\n\nUser-agent: *\nDisallow: /cyberworld/map/ # This is an infinite virtual URL space\n\n# Cybermapper knows where to go.\nUser-agent: cybermapper\nDisallow:\n\n'
  62. good = [
  63.     '/',
  64.     '/test.html',
  65.     ('cybermapper', '/cyberworld/map/index.html')]
  66. bad = [
  67.     '/cyberworld/map/index.html']
  68. RobotTest(2, doc, good, bad)
  69. doc = '\n# go away\nUser-agent: *\nDisallow: /\n'
  70. good = []
  71. bad = [
  72.     '/cyberworld/map/index.html',
  73.     '/',
  74.     '/tmp/']
  75. RobotTest(3, doc, good, bad)
  76. doc = '\nUser-agent: figtree\nDisallow: /tmp\nDisallow: /a%3cd.html\nDisallow: /a%2fb.html\nDisallow: /%7ejoe/index.html\n'
  77. good = []
  78. bad = [
  79.     '/tmp',
  80.     '/tmp.html',
  81.     '/tmp/a.html',
  82.     '/a%3cd.html',
  83.     '/a%3Cd.html',
  84.     '/a%2fb.html',
  85.     '/~joe/index.html']
  86. RobotTest(4, doc, good, bad, 'figtree')
  87. RobotTest(5, doc, good, bad, 'FigTree Robot libwww-perl/5.04')
  88. doc = '\nUser-agent: *\nDisallow: /tmp/\nDisallow: /a%3Cd.html\nDisallow: /a/b.html\nDisallow: /%7ejoe/index.html\n'
  89. good = [
  90.     '/tmp']
  91. bad = [
  92.     '/tmp/',
  93.     '/tmp/a.html',
  94.     '/a%3cd.html',
  95.     '/a%3Cd.html',
  96.     '/a/b.html',
  97.     '/%7Ejoe/index.html']
  98. RobotTest(6, doc, good, bad)
  99. doc = '\nUser-Agent: *\nDisallow: /.\n'
  100. good = [
  101.     '/foo.html']
  102. bad = []
  103. RobotTest(7, doc, good, bad)
  104.  
  105. def test_main():
  106.     test_support.run_suite(tests)
  107.  
  108. if __name__ == '__main__':
  109.     test_support.Verbose = 1
  110.     test_support.run_suite(tests)
  111.  
  112.